package com.lanou.bbs.controller;

import com.lanou.bbs.entity.User;
import com.lanou.bbs.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.sql.SQLException;

@Controller
public class UserController {
    @Autowired
    private UserService service;

    @RequestMapping("/login.do")
    public String login(User dbuser, HttpServletRequest request,
                        HttpSession session) throws SQLException {
        String msg = "";
        if ("".equals(dbuser.getUsername()) || dbuser.getUsername() == null) {
            msg = "用户名不能为空";
            request.setAttribute("msg", msg);
            return "/user/login";
        }
        if ("".equals(dbuser.getPwd()) || dbuser.getPwd() == null) {
            msg = "密码不能为空";
            request.setAttribute("msg", msg);
            return "/user/login";
        }
        User user = service.login(dbuser);
        if (user == null) {
            msg = "用户/密码错误";
            request.setAttribute("msg", msg);
            return "/user/login";
        } else {
            session.setAttribute("user", user);
        }
        return "redirect:/index.jsp";
    }

    @RequestMapping("/register.do")
    public String register(User user, HttpServletRequest request) {
        String msg = "";
        if ("".equals(user.getUsername()) || user.getUsername() == null) {
            msg = "用户名不能为空";
            request.setAttribute("msg", msg);
            return "/user/register";
        }
        if ("".equals(user.getPwd()) || user.getPwd() == null) {
            msg = "密码不能为空";
            request.setAttribute("msg", msg);
            return "/user/register";
        }
        String dbpwd = request.getParameter("dbpwd");
        if ("".equals(dbpwd) || dbpwd == null) {
            msg = "确认密码不能为空";
            request.setAttribute("msg", msg);
            return "/user/register";
        }
        if ("".equals(user.getNickname()) || user.getNickname() == null) {
            msg = "昵称不能为空";
            request.setAttribute("msg", msg);
            return "/user/register";
        }
        boolean register = service.register(user);
        if (!register) {
            msg = "用户已存在";
            request.setAttribute("msg", msg);
            return "/user/register";
        }
        return "redirect:/index.jsp";
    }

    @RequestMapping("/invalidate.do")
    public String invalidate(HttpSession session) {
        session.invalidate();
        return "redirect:/index.jsp";
    }
}
